#多次使用的函数放在common文件中 自己的包中

#定义过滤器
import functools

from flask import session, current_app,g

from info.utils.models import User


def func_index_convert(index):
    #对应的是前段index首页的三种css类型
    index_dict = {1:"first",2:"second",3:"third"}
    return index_dict.get(index,"")

# #多次使用放到该包中函数封装
# def user_login_data():
#     #判断用户登陆
#     user_id = session.get("user_id")
#     user = None
#     if user_id:  # 已登陆
#         try:
#             # 表一用户表
#             user = User.query.get(user_id)
#         except BaseException as e:
#             current_app.logger.error(e)
#     #第一种（1）
#     # return user
#     # 第二种（2）
#     g.user=user

#多次使用放到该包中函数封装
#闭包装饰器版本版本
def user_login_data(f): #f=news_detail

    @functools.wraps(f) #装饰器路由走到哪一个执行哪一个//内部装饰器，能让被装饰的函数使用指定的装饰器名称
    def wrappers(*args,**kwargs):
        #判断用户登陆
        user_id = session.get("user_id")
        user = None
        if user_id:  # 已登陆
            try:
                # 表一用户表
                user = User.query.get(user_id)
            except BaseException as e:
                current_app.logger.error(e)

        # 第二种（2）
        g.user=user
        print(wrappers.__name__)    #获取函数的名字/__doc__获取函数的文档说明
        return f(*args,**kwargs)
    return wrappers


# 上传文件到七牛云
def file_upload(data):
    """
    上传文件到七牛云
    :param data: 要上传的文件
    :return: 保存在七牛云的文件名
    """

    import qiniu
    access_key = "2puEdhIhmbsFgTrbnBJu6GzjK2OViDj_I66eRqjw"
    secret_key = "ylvZTntw_xzW06YLRMJx_BqN7VSPSP9JTMzNRQ3A"
    bucket_name = "tempxm01"  # 空间名称

    q = qiniu.Auth(access_key, secret_key)
    key = None  # 设置文件名, 如果为None, 就会生成随机名称

    token = q.upload_token(bucket_name)

    ret, info = qiniu.put_data(token, key, data)
    if ret is not None:
        return ret.get('key')  # 文件名
    else:
        raise BaseException(info) # error message in info